const log4js = require("log4js")
const path = require("path")

// 获取一个日志记录对象
const logger = log4js.getLogger()

logger.info('普通信息')
logger.error('错误信息')


// 配置sql
log4js.configure({
    appenders: { // 出口
        sql: {
            type: 'dateFile',// "file",
            filename: path.resolve(__dirname, 'logs', 'sql', 'logging.log'),
            maxLogSize: 100 * 1024, // 配置文件的最大字节数
            keepFileExt: true, // 保留文件后缀
            daysToKeep: 1, // 保留一定期限的日志 指定日志保留的天数 ( 默认为 0，始终保留 )
            layout: { // 设置格式
                type: 'pattern',
                //  时间%d 级别%p 类型%c 内容%m 换行%n
                pattern: `##-------------------------------------
date    ：%d{yyyy-MM-dd hh:mm:ss} 
level   ：%p
type    ：%c
content ：%m
##-------------------------------------
`
            }
        },
        default: {
            type: "file",
            filename: path.resolve(__dirname, 'logs', 'default', 'logging.log')
        }
    },
    categories: { // 分类
        sql: { // 该分类使用出口sql的配置写入日志
            appenders: ["sql"],
            level: "all"
        },
        default: {
            appenders: ["default"],
            level: "all"
        }
    }
});

// 程序退出时让log4js把日志记录完
process.on('exit', () => {
    log4js.shutdown()
})

const sqllog = log4js.getLogger('sql')

sqllog.info('sql 分类记录')

// let i = 1
// setInterval(() => {
//     sqllog.info('记录sql语句信息:' + i)
//     i++
// }, 100)

const delog = log4js.getLogger()

delog.info('默认 分类记录')